<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // .then是成功以后执行的回调函数
    // .then可以接受relsove的参数
    // 第一个.then里面return的那个promise的结果可以作为下一个.then的参数res


    // new Promise()里面的代码属于同步代码
    // .then()里面的是异步代码
    // const p1 = new Promise((resolve, reject) => {
    //   setTimeout(() => {
    //     resolve()
    //   }, 3000)
    // })

    // p1.then(() => {
    //   console.log(123);
    // })





    function require(url) {
      return new Promise((resolve) => {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', url);
        xhr.send();
        xhr.onload = function() {
          if (xhr.status === 200) {
            // console.log(JSON.parse(xhr.responseText)); // 数据一
            resolve(JSON.parse(xhr.responseText))
          } else {
            console.error('请求失败', xhr.status);
          }
        };
      })
    }

    function delay(ms) {
      return new Promise((resolve) => {
        setTimeout(() => {
          resolve()
        }, ms)
      })
    }
    
    require('https://cnodejs.org/api/v1/topics').then((res) => {
      console.log(res);
      return delay(3000)
    }).then(() => {
      return require('https://cnodejs.org/api/v1/topic/61f69e4aa08b39f75309c2a8')
    }).then(res2 => {
      console.log(res2);
    })
  </script>
</body>
</html>